package com.jeesite.modules.jdProduct.utils;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 *  json 转换工具类
 */
public class GsonUtil {

    /**
     * 对象转字符
     *
     * @param object
     * @return
     */
    public static String toJson(Object object) {
        GsonBuilder gsonBuilder = new GsonBuilder();
        gsonBuilder.setPrettyPrinting();
        Gson gson = gsonBuilder.create();
        return gson.toJson(object);
    }


    /**
     *  json数组转换
     * @param json
     * @param type
     * @return 返回 List<Object>
     */
    public static <T> T toList(String json, Type type){
        Gson gson = new Gson();
        return gson.fromJson(json, new TypeToken<List<T>>() {
        }.getType());
    }

    /**
     *  字符转对象
     * @param jsonObj
     * @param valueType
     * @param <T>
     * @return
     */
    public static <T> T parse(String jsonObj, Class<T> valueType) {
        Gson gson = new Gson();
        return gson.fromJson(jsonObj, valueType);
    }

}
